from PublicReference.base import *

# class 主动技能(主动技能):
#     def 等效CD(self, 武器类型):
#         if 武器类型 == '棍棒':
#             return round(self.CD / self.恢复 * 1, 1)
        

class 知源·逐风者技能0(被动技能):
    名称 = '疾风之棍棒精通'
    所在等级 = 15
    等级上限 = 30
    基础等级 = 20
    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        if self.等级 <= 20:
            return round(1.00 + 0.01 * self.等级, 5)
        else:
            return round(0.80 + 0.02 *self.等级 , 5)

    def 物理攻击力倍率(self, 武器类型):
        return self.加成倍率(武器类型)

class 知源·逐风者技能1(被动技能):
    名称 = '御风之力'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20
    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.025 + 0.02 * self.等级, 5)

class 知源·逐风者技能2(被动技能):
    名称 = '风神诀'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)


class 知源·逐风者技能3(被动技能):
    名称 = '创世之风'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)

class 知源·逐风者技能4(被动技能):
    名称 ='风之意志'
    所在等级= 30
    等级上限 =15
    基础等级 =5
    
    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.025+0.015*self.等级, 5)


class 知源·逐风者技能5(主动技能):
    名称 = '狂风冲刺'
    所在等级= 15
    等级上限 =60
    基础等级 =46
    基础 = 603 * 1.141
    成长 = 66 * 1.141
    CD = 5
    TP成长 = 0.10
    TP上限 = 5

class 知源·逐风者技能6(主动技能):
    名称 = '回风斩'
    所在等级= 15
    等级上限 =60
    基础等级 =46
    基础 = 1920
    成长 = 216
    CD = 5.5
    TP成长 = 0.10
    TP上限 = 5

class 知源·逐风者技能7(主动技能):
    名称 = '朔风牵引'
    所在等级= 20
    等级上限 =60
    基础等级 =43
    基础 = 1650 * 1.111
    成长 = 186 * 1.111
    CD = 10
    TP成长 = 0.10
    TP上限 = 5

class 知源·逐风者技能8(主动技能):
    名称 = '风鸣冲击'
    所在等级 =25
    等级上限 =60
    基础等级 =41
    基础 = 3215 * 1.11
    成长 = 364 * 1.11
    CD = 8.5
    TP成长 = 0.10
    TP上限 = 5

class 知源·逐风者技能9(主动技能):
    名称 = '游离之风'
    所在等级 =25
    等级上限 =60
    基础等级 =41
    基础 = 2716 * 1.07
    成长 = 308 * 1.07
    CD = 6.7
    TP成长 = 0.10
    TP上限 = 5


class 知源·逐风者技能10(主动技能):
    名称 = '双翼风刃'
    所在等级= 30
    等级上限 =60
    基础等级 =38
    基础 = 4948 * 1.103
    成长 = 560 * 1.103
    CD = 14
    TP成长 = 0.10
    TP上限 = 5


class 知源·逐风者技能11(主动技能):
    名称 = '风暴之眼'
    所在等级= 35
    等级上限 =60
    基础等级 =36
    基础 = 5270 * 1.132
    成长 = 594 * 1.132
    CD = 16
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    
    护石选项 = ['魔界', '圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.28
            self.CD *= 0.90
        elif x == 1:
            self.倍率 *= 1.28 + 0.09
            self.CD *= 0.90

class 知源·逐风者技能12(主动技能):
    名称 = '刃风'
    所在等级= 35
    等级上限 =60
    基础等级 =36
    基础 = 7439 * 1.1
    成长 = 843 * 1.1
    CD = 18
    TP成长 = 0.10
    TP上限 = 5

class 知源·逐风者技能13(主动技能):
    名称 = '真空旋风破'
    所在等级= 40
    等级上限 =60
    基础等级 =33
    基础 = 7275 * 1.076
    成长 = 827 * 1.076
    CD = 25
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    
    护石选项 = ['魔界', '圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.085
            self.CD *= 0.8
        elif x == 1:
            self.倍率 *= 1.175
            self.CD *= 0.8

class 知源·逐风者技能14(主动技能):
    名称 = '风暴之拳'
    所在等级= 45
    等级上限 =60
    基础等级 =31
    基础 = 16553 * 1.1
    成长 = 1863 * 1.1
    CD = 45
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    
    护石选项 = ['魔界', '圣痕']#不确定对不对
    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.22
        elif x == 1:
            self.倍率 *= 1.295

class 知源·逐风者技能15(主动技能):
    名称 = '万象风龙阵'
    所在等级= 50
    等级上限 =60
    基础等级 =12
    基础 = 38776 * 1.156
    成长 = 11760 * 1.156
    CD = 145

class 知源·逐风者技能16(主动技能):
    名称 = '疾风瞬影闪'
    所在等级= 60
    等级上限 =60
    基础等级 =23
    基础 = 14949 * 1.162
    成长 = 1692 * 1.162
    CD = 30
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    
    护石选项 = ['魔界', '圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.18
        elif x == 1:
            self.倍率 *= 1.18 + 0.09

class 知源·逐风者技能17(主动技能):
    名称 = '风卷残云'
    所在等级= 70
    等级上限 =40
    基础等级 =18
    基础 = 26570
    成长 = 3007
    CD = 50
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    
    护石选项 = ['魔界', '圣痕']#不确定是加算还是乘算
    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.22
        elif x == 1:
            self.倍率 *= 1.22 + 0.08

class 知源·逐风者技能18(主动技能):
    名称 = '游龙惊风破'
    所在等级= 75
    等级上限 =40
    基础等级 =16
    基础 = 38344 * 1.1
    成长 = 4325 * 1.1
    CD = 40
    是否有护石 = 1

    护石选项 = ['圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.26

class 知源·逐风者技能19(主动技能):
    名称 = '九霄风雷'
    所在等级= 80
    等级上限 =40
    基础等级 =13
    基础 = 48994 * 1.09
    成长 = 5521 * 1.09
    CD = 45
    是否有护石 = 1

    护石选项 = ['圣痕']
    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.27
            self.CD *= 0.89

class 知源·逐风者技能20(主动技能):
    名称 = '无限风域'
    所在等级= 85
    等级上限 =40
    基础等级 =5
    基础 = 84529 * 1.09
    成长 = 25501 * 1.09
    CD = 180

class 知源·逐风者技能21(主动技能):
    名称 = '狂岚律动'
    所在等级 = 95
    等级上限 = 11
    基础等级 = 6
    基础 = 2853.8 * 1.05
    成长 = 322.2 * 1.05
    攻击次数 = 6
    基础2 = 6422 * 1.05
    成长2 = 725 * 1.05
    攻击次数2 = 4
    基础3 = 42814.2 * 1.05
    成长3 = 4833.8 * 1.05
    攻击次数3 = 1
    CD = 60


class 知源·逐风者技能22(主动技能):
    名称 = '风暴之主·神之怒'
    所在等级 = 100
    等级上限 = 40
    基础等级 = 2
    基础 = 26244.1692923844
    成长 = 7922.83070761556
    攻击次数 = 1
    基础2 = 39366.5033510094
    成长2 = 11884.4966489906
    攻击次数2 = 1
    基础3 = 7873.13078771533
    成长3 = 2376.86921228467
    攻击次数3 = 25
    CD = 290

    def 加成倍率(self, 武器类型):
        return 0.0


知源·逐风者技能列表 = []
i = 0
while i >= 0:
    try:
        exec('知源·逐风者技能列表.append(知源·逐风者技能'+str(i)+'())')
        i += 1
    except:
        i = -1

知源·逐风者技能序号 = dict()
for i in range(len(知源·逐风者技能列表)):
    知源·逐风者技能序号[知源·逐风者技能列表[i].名称] = i

知源·逐风者一觉序号 = 0
知源·逐风者二觉序号 = 0
知源·逐风者三觉序号 = 0
for i in 知源·逐风者技能列表:
    if i.所在等级 == 50:
        知源·逐风者一觉序号 = 知源·逐风者技能序号[i.名称]
    if i.所在等级 == 85:
        知源·逐风者二觉序号 = 知源·逐风者技能序号[i.名称]
    if i.所在等级 == 100:
        知源·逐风者三觉序号 = 知源·逐风者技能序号[i.名称]

知源·逐风者护石选项 = ['无']
for i in 知源·逐风者技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        知源·逐风者护石选项.append(i.名称)

知源·逐风者符文选项 = ['无']
for i in 知源·逐风者技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        知源·逐风者符文选项.append(i.名称)

class 知源·逐风者角色属性(角色属性):

    实际名称 = '知源·逐风者'
    角色 = '魔法师(男)'
    职业 = '逐风者'

    武器选项 = ['棍棒']
    
    类型选择 = ['物理百分比']
    
    类型 = '物理百分比'
    防具类型 = '皮甲'
    防具精通属性 = ['力量']

    主BUFF = 2.11
   
    def __init__(self):
        基础属性输入(self)
        self.技能栏= deepcopy(知源·逐风者技能列表)
        self.技能序号= deepcopy(知源·逐风者技能序号)

class 知源·逐风者(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 知源·逐风者角色属性()
        self.角色属性A = 知源·逐风者角色属性()
        self.角色属性B = 知源·逐风者角色属性()
        self.一觉序号 = 知源·逐风者一觉序号
        self.二觉序号 = 知源·逐风者二觉序号
        self.三觉序号 = 知源·逐风者三觉序号
        self.护石选项 = deepcopy(知源·逐风者护石选项)
        self.符文选项 = deepcopy(知源·逐风者符文选项)

